package cn.bytengine.stem.contexts;

/**
 * 属性数据控制器
 *
 * @param <T> 属性数据控制器实现类
 */
public interface Accessor<T extends Accessor<T>> extends Setter<T>, Getter {

    /**
     * 判断指定key是否存在上下文中
     *
     * @param key 上下文对应数据的key
     * @return 是否包含指定的key
     */
    boolean has(String key);

    /**
     * 从上下文中删除指定key，如果指定key不存在于上下文，删除操作将不会产生任何影响
     *
     * @param key 上下文对应数据的key
     * @return 返回当前上下文实例，支持链式调用
     */
    T remove(String key);

}
